from django.db import models


class Departement(models.Model):
    """
    部门表
    """
    title = models.CharField(max_length=100, verbose_name='部门名称')


class Employee(models.Model):
    e_name = models.CharField(max_length=100, verbose_name='用户名')
    password = models.CharField(max_length=100, verbose_name='密码')
    age = models.IntegerField(verbose_name='年龄')
    # 在Django中做的约束
    gender_choice = (
        (1,'男'),
        (2,'女')
    )
    gender = models.IntegerField(choices=gender_choice, verbose_name='性别')

    account = models.DecimalField(verbose_name='账户', max_digits=10, decimal_places=2,default=0)
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='入职时间')

    # 外键
    # 1. 无约束
    # depart_id = models.IntegerField(verbose_name='部门编号')

    # 2. 有约束
    '''
        to : 指定外键关联的目标模型
        to_field: 指定关联到目标模型的哪个字段
        on_delete : 设置删除关联数据时的级联行为 ,
            CASCADE 表示当关联的 Departement 对象被删除时，所有引用它的对象也会被级联删除
            PROTECT：防止删除被引用的对象
            SET_NULL：将外键设置为 NULL（需要字段允许为空） 如果要设置这个值，必须有 null=True
            SET_DEFAULT：设置为默认值 ,必须指定 default = '默认值'
            SET()：设置为指定值
            DO_NOTHING：什么也不做
    '''
    depart = models.ForeignKey(to = Departement,
                               to_field="id",
                               null = True,
                               on_delete=models.SET_NULL,
                               verbose_name='部门id',
                            )